package com.ohc.算法.排序;

/**
 * @Author 欧皓辰
 * @Date 2021/12/22 0:07
 * @Version 1.0
 */
public class 堆排序 {
    /**
     * 堆排序可以看做是选择排序的一种优化。
     * 也就是遍历，然后挑出最大值放在最后面，只是在挑最大值的过程时间复杂度比较低。
     * <p>
     * 执行流程：
     * 对序列进行原地建堆 （heapify）  建堆时间复杂度为n级别              时间复杂度严格来说是nlogn+n
     * 重复以下操作，直到堆的元素数量为1   循环n-1次 也就是n
     * <p>
     * 交换堆顶元素与尾元素   O(1)
     * 堆的元素数量减1         O(1)
     * 对0位置进行1次 siftDown操作   logn
     */

    public static void main(String[] args) {

    }


}
